From 787ee3e77d46840797c83499cf01b3476313725a Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Thu, 9 Dec 2004 02:12:47 +0000 Subject: [PATCH] Merged from gtk-2-4: 2004-12-08 Federico Mena Quintero Merged from gtk-2-4: * gtk/gtkfilechooserdefault.c (pending_op_process): Center the selected row so that it's easily visible. --- ChangeLog | 7 +++++++ ChangeLog.pre-2-10 | 7 +++++++ ChangeLog.pre-2-6 | 7 +++++++ ChangeLog.pre-2-8 | 7 +++++++ gtk/gtkfilechooserdefault.c | 26 ++++++++++++++++++++++++++ 5 files changed, 54 insertions(+) diff --git a/ChangeLog b/ChangeLog index 9ec2954ba9..d6fce525bf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-12-08 Federico Mena Quintero + + Merged from gtk-2-4: + + * gtk/gtkfilechooserdefault.c (pending_op_process): Center the + selected row so that it's easily visible. + 2004-12-08 Matthias Clasen Fix #111031, reported by Padraig O'Briain: diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 9ec2954ba9..d6fce525bf 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +2004-12-08 Federico Mena Quintero + + Merged from gtk-2-4: + + * gtk/gtkfilechooserdefault.c (pending_op_process): Center the + selected row so that it's easily visible. + 2004-12-08 Matthias Clasen Fix #111031, reported by Padraig O'Briain: diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 9ec2954ba9..d6fce525bf 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +2004-12-08 Federico Mena Quintero + + Merged from gtk-2-4: + + * gtk/gtkfilechooserdefault.c (pending_op_process): Center the + selected row so that it's easily visible. + 2004-12-08 Matthias Clasen Fix #111031, reported by Padraig O'Briain: diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 9ec2954ba9..d6fce525bf 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +2004-12-08 Federico Mena Quintero + + Merged from gtk-2-4: + + * gtk/gtkfilechooserdefault.c (pending_op_process): Center the + selected row so that it's easily visible. + 2004-12-08 Matthias Clasen Fix #111031, reported by Padraig O'Briain: diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c index 489b9d46cc..60bfad3f2f 100644 --- a/gtk/gtkfilechooserdefault.c +++ b/gtk/gtkfilechooserdefault.c @@ -4265,6 +4265,31 @@ browse_files_select_first_row (GtkFileChooserDefault *impl) gtk_tree_path_free (path); } +/* Callback used from gtk_tree_selection_selected_foreach(); centers the + * selected row in the tree view. + */ +static void +center_selected_row_foreach_cb (GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) +{ + GtkFileChooserDefault *impl; + + impl = GTK_FILE_CHOOSER_DEFAULT (data); + gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (impl->browse_files_tree_view), path, NULL, TRUE, 0.5, 0.0); +} + +/* Centers the selected row in the tree view */ +static void +browse_files_center_selected_row (GtkFileChooserDefault *impl) +{ + GtkTreeSelection *selection; + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (impl->browse_files_tree_view)); + gtk_tree_selection_selected_foreach (selection, center_selected_row_foreach_cb, impl); +} + /* Processes the pending operation when a folder is finished loading */ static void pending_op_process (GtkFileChooserDefault *impl) @@ -4281,6 +4306,7 @@ pending_op_process (GtkFileChooserDefault *impl) gtk_file_path_free (impl->pending_select_path); impl->pending_select_path = NULL; impl->pending_op = PENDING_OP_NONE; + browse_files_center_selected_row (impl); break; case PENDING_OP_SELECT_FIRST: -- 2.30.2